package com.fmy.jurisdiction.modular.service;

import com.fmy.jurisdiction.modular.model.AdminRole;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fmy.jurisdiction.modular.model.vo.AdminRoleChildren;

import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author Mr.fmy
 * @since 2019-09-16
 */
public interface IAdminRoleService extends IService<AdminRole> {

    boolean addAdminRole();

    int getIdCount(Integer id);

    /**
     * 获取某个角色列表的最大层级
     *
     * @param roles 以 , 分割
     */
    int getMaxLevel(String roles);

    boolean addRole(AdminRole role);

    /**
     * 修改角色名称
     */
    boolean modifyRole(Integer rid, String roleName, Integer optionUser);

    /**
     * 删除角色
     */
    boolean delRole(Integer rid);

    /**
     * 分配权限
     *
     * @param type false 移除权限 true 分配权限
     */
    boolean allocationPrem(Integer rid, Integer premId, boolean type);

    /**
     * 角色树形菜单
     * @param roleId 不为空以这个 角色为主 查询其以下的角色 包含其自身
     */
    List<AdminRoleChildren> getRoleChildren(Integer roleId);
}
